iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

今天來講講Postman和Notion API試打的結果

Postman

https://ithelp.ithome.com.tw/upload/images/20230922/20140869qM5wejxpqv.png

Postman API Platform | Sign Up for Free

這邊是Postman的官網,這個程式主要就是執行http request的方法,常見的有這些方法

  • GET:主要是用來請求資料
  • POST:將要修改的內容提供給url,類似於update的感覺
  • PUT:如果有要更新的內容但是參數沒有帶的話,會被更新成空的
  • PATCH:有要更新的內容但是參數沒有帶的話,該參數不會被動到
  • DELETE:刪除某個row

這邊我使用的是mac版的Postman,介面大概長這樣

https://ithelp.ithome.com.tw/upload/images/20230922/20140869llW0kSignB.png

進到程式後,會需要登入或是跳過登入,這部分就不細講了,總之成功進入到頁面後會是上面這個樣子

接著我們來講一下Notion Create Database的部分

Notion Create Database

curl --location --request POST 'https://api.notion.com/v1/databases/' \
--header 'Authorization: Bearer '"$NOTION_API_KEY"'' \
--header 'Content-Type: application/json' \
--header 'Notion-Version: 2022-06-28' \
--data '{
    "is_inline": true,
    "parent": {
        "type": "page_id",
        "page_id": "$uuid"
    },
    "icon": {
    	"type": "emoji",
			"emoji": "📝"
  	},
  	"cover": {
  		"type": "external",
    	"external": {
    		"url": "https://website.domain/images/image.png"
    	}
  	},
    "title": [
        {
            "type": "text",
            "text": {
                "content": "Grocery List",
                "link": null
            }
        }
    ],
    "properties": {
        "Name": {
            "title": {}
        },
        "Description": {
            "rich_text": {}
        },
        "In stock": {
            "checkbox": {}
        },
        "Food group": {
            "select": {
                "options": [
                    {
                        "name": "🥦Vegetable",
                        "color": "green"
                    },
                    {
                        "name": "🍎Fruit",
                        "color": "red"
                    },
                    {
                        "name": "💪Protein",
                        "color": "yellow"
                    }
                ]
            }
        },
        "Price": {
            "number": {
                "format": "dollar"
            }
        },
        "Last ordered": {
            "date": {}
        },
        "Store availability": {
            "type": "multi_select",
            "multi_select": {
                "options": [
                    {
                        "name": "Duc Loi Market",
                        "color": "blue"
                    },
                    {
                        "name": "Rainbow Grocery",
                        "color": "gray"
                    },
                    {
                        "name": "Nijiya Market",
                        "color": "purple"
                    },
                    {
                        "name": "Gus's Community Market",
                        "color": "yellow"
                    }
                ]
            }
        },
        "+1": {
            "people": {}
        },
        "Photo": {
            "files": {}
        }
    }
}'

上面這段是在Notion Create Database頁面的內容,上面提到的NOTION_API_KEY就是昨天說到的內容,接著先把這些內容放進Postman中看能不能生成出一個Database

https://ithelp.ithome.com.tw/upload/images/20230922/20140869Fpi9AciODH.png

首先先按這邊的+號,會出現以下內容

https://ithelp.ithome.com.tw/upload/images/20230922/20140869Pes14aRxiL.png

接著由於看到上面的內容中是使用POST,所以需要把GET改成POST

https://ithelp.ithome.com.tw/upload/images/20230922/20140869H4tMZwnin1.png

接著在URL的地方輸入https://api.notion.com/v1/databases/

並且把下面的部分開到Headers

https://ithelp.ithome.com.tw/upload/images/20230922/20140869KaALuQB3nQ.png

在Headers的部分打上

Key Value Note
Authorization Bearer $NOTION_API_KEY Bearer記得要加,Notion API Key不需要雙引號或單引號
Content-Type application/json
Notion-Version 2022-06-28 官網說這個部分一定要加,並且以這個版本為主,如果有更新的話以官網為主

https://ithelp.ithome.com.tw/upload/images/20230922/2014086978dUVFz6v4.png

接著把上面data的內容複製貼上到body

https://ithelp.ithome.com.tw/upload/images/20230922/20140869lO5sepkK70.png

看到想要加入Database的Page,記得connection的部分要設定好,如果沒有的話請看昨天的教學

https://ithelp.ithome.com.tw/upload/images/20230922/20140869Quwt3HyBwK.png

設定好後上面紅色的部分就是page_id,把上面body中的內容替換成紅框的內容

按下Send後看看發生什麼事

結果發現page id出現錯誤

Notion Page ID

有關Notion Page ID的內容在網路上面有點少,我這邊順便整理一下

錯誤的內容是說Page ID不是uuid

這邊來引用一下維基百科對於uuid的說明

在這個地方的page id必須是uuid才有辦法使用

那要怎麼拿到uuid呢

我在前面拿到的page url的內容最後一段是這樣Integration-test-e728307af5c64914b427f567813af0e5

只要把後面編碼的部分取出,然後按照uuid的格式

8 4 4 4 12
e728307a f5c6 4914 b427 f567813af0e5

所以要寫成e728307a-f5c6-4914-b427-f567813af0e5

將這串內容貼上去page id就可以使用了

由於我上面有加上is_inline: true,所以database會直接出現在頁面上

https://ithelp.ithome.com.tw/upload/images/20230922/201408690XMArA8cDA.png

這邊是頁面的完成圖,這樣就知道要怎麼使用Postman打Notion API了

p.s. 今天在小琉球因為肩膀要開刀所以不能下水,只能來比鐵人賽了🥲

Reference


上一篇
Day 6 初探Notion API vol.2
下一篇
Day 8 Swagger + Go = Swaggo
系列文
行事曆不再NG:Notion API&Google Calendar跨平台整合發想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言